#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "stuManage.h"
#include "tools.h"
#include "initProgram.h"
void stuView()
{
	printf(" _________________________\n");
	printf("|                         |\n");
	printf("|--------欢迎登录---------|\n");
	printf("|----输入需要执行的功能---|\n");
	printf("|-----1.查询成绩----------|\n");
	printf("|-----2.修改密码----------|\n");
	printf("|-----3.查看个人信息------|\n");
	printf("|-----4.退出登陆----------|\n");
	printf("|_________________________|\n");

}
void stuSearchScore(int account)//显示每科最高最低平均分，排名
{
	int cnt = 0;
	double *chn = calloc(1000,sizeof(double));
	double *math = calloc(1000,sizeof(double));
	double *eng = calloc(1000,sizeof(double));
	double totalChn = 0;
	double totalMath = 0;
	double totalEng = 0;
	for(int i = 0;i<STUMAX;i++)//各科成绩存入数组
	{
		if(student[i].id != 0 && student[i].flag != 2)//判断学生是否离校或不存在
		{
			chn[cnt] = student[i].chnScore;
			math[cnt] = student[i].mathScore;
			eng[cnt] = student[i].engScore;
			cnt++;
		}
	}
	int temp = 0;
	for(int i = 0;i<cnt;i++)//冒泡排序
	{	
		for(int j = 0;j<cnt-i;j++)
		{
			if(chn[j]<chn[j+1])
			{
				temp = chn[j];
				chn[j]=chn[j+1];
				chn[j+1]=temp;
			}
			if(math[j]<math[j+1])
			{
				temp = math[j];
				math[j]=math[j+1];
				math[j+1]=temp;
			}
			if(eng[j]<eng[j+1])
			{
				temp = eng[j];
				eng[j]=eng[j+1];
				eng[j+1]=temp;
			}
		}
	}
	printf("排名\t语文\t数学\t英语\t\n");
	for(int i = 0;i<cnt;i++)//输出排名
	{
		totalChn += chn[i];
		totalMath += math[i];
		totalEng += eng[i];
		printf("%d\t %.2lf\t %.2lf\t %.2lf\t\n",i+1,chn[i],math[i],eng[i]);
	}
	printf("\t\t语文\t数学\t英语\n");
	printf("平均:\t%.2lf\t%.2lf\t%.2lf\n",totalChn/(cnt*1.0),totalMath/(cnt*1.0),totalEng/(cnt*1.0));
	printf("最高:\t%.2lf\t%.2lf\t%.2lf\n",chn[0],math[0],eng[0]);
	printf("最低:\t%.2lf\t%.2lf\t%.2lf\n",chn[cnt-1],math[cnt-1],eng[cnt-1]);
	anykey_continue();
	free(chn);//释放内存
	free(math);
	free(eng);
	chn = NULL;//避免野指针
	math = NULL;
	eng = NULL;
	
}

void stuModifypassword(int account)//修改个人密码
{
	char password[50] = {};
	for(int i = 0;i<1000;i++)
	{
		if(student[i].id == account)
		{
			printf("输入想修改的密码：\n");
			scanf("%s",password);
			while(ifBeyond(password,20))
			{
				printf("密码过长，请缩减至20位以内！\n");
				printf("请重新输入密码:\n");
				scanf("%s",password);
			}
			strcpy(student[i].password,password);
			printf("修改成功\n");
			break;
		}
	}
}

void stuViewinfo(int account)//显示个人信息
{
	for(int i = 0;i<1000;i++)
	{
		if(student[i].id == account)
		{
			printf("名字：%s\n密码： %s\n语文成绩： %.1lf\n数学成绩： %.1lf\n英语成绩： %.1lf\n学号： %d\n性别： %s\n",student[i].name,student[i].password,student[i].chnScore,student[i].mathScore,student[i].engScore,student[i].id,student[i].sex=='w'?"女":"男");
		anykey_continue();
		break;
		}
	}
}
